package nan.String;
class MyException extends Exception{

}
public class Main3 {
  public static void func() throws MyException {
      throw new MyException();
  }

    public static void main(String[] args) {
        try{
            func();
        }catch (MyException e){
            System.out.println("捕获了MyException");
            e.printStackTrace();
        }
        System.out.println("hhh");
    }
    public static void main4(String[] args) {
        int[] array={1,2,3};
        try{
            System.out.println(array[1]);
            System.out.println("继续执行");
        }catch (ArrayIndexOutOfBoundsException e){
            e.printStackTrace();
            System.out.println("数组越界异常");
        }finally {//一定会被执行，主要用来释放资源
            System.out.println("我是finally");
        }
    }
    public static void main1(String[] args) {
        System.out.println(10/0);//代码在这里发生异常，但是程序没有捕获异常，
        // 那么这个异常就会交给jvm来处理，一旦交给jvm来处理，程序就会立马异常终止，不会继续向下执行
        System.out.println("jjjj");
    }
    public static void main2(String[] args) {
        try {
            System.out.println(10/0);//代码在这里发生异常
        }catch (ArithmeticException e){//如果捕获到相应异常，就会执行catch当中的代码；
            // 如果没有捕获到相应异常还是交给jvm
            System.out.println("捕获到了算术异常");
        }
        System.out.println("hhhhh");
    }
}
